package com.yourenbang.lingyun.transaction.web.service.fund.fundopt;

import com.yourenbang.lingyun.core.message.Result;
import com.yourenbang.lingyun.domain.FundAccount;
import com.yourenbang.lingyun.transaction.web.domain.dto.ChangeFundAccountV2DTO;
import com.yourenbang.lingyun.transaction.web.domain.po.FundAccountChangePlan;

public interface FundOptDepositService {

    /**
     * 可提余额冻结
     *
     * @param fromFundAccount
     * @param toFundAccount
     * @param changeFundAccountDTO
     * @return
     */
    Result<FundAccountChangePlan> deposit(FundAccount fromFundAccount, FundAccount toFundAccount,
                                          ChangeFundAccountV2DTO changeFundAccountDTO);

    /**
     * 余额支付 资金冻结
     *
     * @param fromFundAccount
     * @param toFundAccount
     * @param changeFundAccountDTO
     * @return
     */
    Result<FundAccountChangePlan> depositBalance(FundAccount fromFundAccount, FundAccount toFundAccount,
                                          ChangeFundAccountV2DTO changeFundAccountDTO);
}
